﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using HomeCare.View;
using System.Data;

namespace HomeCare.Model
{
    class CidadeDados
    {
        Conexao con = new Conexao();

        public bool InsereCidade(Cidade cidade)
        {

            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = String.Format("insert into Cidades (Cidade, Estados_ID) values ('{0}','{1}')", cidade.cidade, cidade.estado.id);
            try
            {
                SqlCommand cmd = new SqlCommand(query, sql);
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                sql.Close();
                return true;
            }
            catch (Exception ex)
            {

                //throw new Exception("Erro ao Inserir Cidade.");
                sql.Close();
                //MessageBox.Show(ex.Message);
                return false;
            }
        }


        public bool AlteraCidade(Cidade cidade)
        {
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = String.Format("update Cidades set Cidade='{0}', Estados_ID='{1}' where id='{2}'", cidade.cidade, cidade.estado.id, cidade.id);
            try
            {
                SqlCommand cmd = new SqlCommand(query, sql);
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                sql.Close();
                return true;
            }
            catch (Exception ex)
            {
                //throw new Exception("Erro ao Alterar Cidade.");
                sql.Close();
                //MessageBox.Show(ex.Message);
                return false;
            }
        }


        public bool ExcluiCidade(Cidade cidade)
        {
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = String.Format("delete from Cidades where Id='{0}'", cidade.id);
            try
            {
                SqlCommand cmd = new SqlCommand(query, sql);
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                sql.Close();
                return true;
            }
            catch (Exception ex)
            {
                //throw new Exception("Erro ao Alterar Cidade.");
                sql.Close();
                //MessageBox.Show(ex.Message);
                return false;
            }
        }

        public DataSet ConsultaCidade(Cidade cidade)
        {
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = "select Estados.ID as 'Estado_ID', Estados.Sigla, Estados.Estado, Cidades.ID as 'Cidade_ID', Cidades.Cidade ";
            query += " from Cidades inner join Estados on Cidades.Estados_ID = Estados.ID ";
            query += " where (1=1) ";
            query += String.IsNullOrEmpty(cidade.estado.id.ToString()) || (cidade.estado.id==-1) ? String.Empty : (String.Format(" and Estados_ID = '{0}' ", cidade.estado.id));
            query += String.IsNullOrEmpty(cidade.cidade) ? String.Empty : (String.Format(" and Cidade like '%{0}%' ", cidade.cidade));
            query += " order by Estados_ID, Cidade ";
            try
            {
                SqlDataAdapter dataAdapter = new SqlDataAdapter(query, sql);
                DataSet dataSet = new DataSet();
                dataAdapter.Fill(dataSet);
                sql.Close();
                return dataSet;

            }
            catch (Exception ex)
            {
                sql.Close();
                throw new Exception("Erro ao Consultar Cidade.");
                //MessageBox.Show(ex.Message);

            }
        }

    }
}
